package com.wangdao.wechatmall.bean.vo.wx;

import lombok.Data;

/**
 * 这是前后端分离，json数据一个常用的格式
 * @author ZhangXiao on 2021/6/29
 */
@Data
public class WXBaseRespVo<T> {
    T data;
    String errmsg;//告诉前端请求的消息
    long errno;//自己的前后端应用 ： 自定义的状态码 → 通常前端根据该状态码做不同的处理

    public static WXBaseRespVo ok(){
        WXBaseRespVo<Object> baseRespVo = new WXBaseRespVo<>();
        baseRespVo.setErrno(0);
        baseRespVo.setErrmsg("成功");
        return baseRespVo;
    }
    public static WXBaseRespVo ok(Object data){
        WXBaseRespVo<Object> baseRespVo = new WXBaseRespVo<>();
        baseRespVo.setData(data);
        baseRespVo.setErrno(0);
        baseRespVo.setErrmsg("成功");
        return baseRespVo;
    }
    public static WXBaseRespVo ok(Object data, String msg){
        WXBaseRespVo<Object> baseRespVo = new WXBaseRespVo<>();
        baseRespVo.setData(data);
        baseRespVo.setErrno(0);
        baseRespVo.setErrmsg(msg);
        return baseRespVo;
    }
    public static WXBaseRespVo fail(){
        WXBaseRespVo<Object> baseRespVo = new WXBaseRespVo<>();
        baseRespVo.setErrno(500);
        baseRespVo.setErrmsg("失败");
        return baseRespVo;
    }
    public static WXBaseRespVo fail(String msg){
        WXBaseRespVo<Object> baseRespVo = new WXBaseRespVo<>();
        baseRespVo.setErrno(500);
        baseRespVo.setErrmsg(msg);
        return baseRespVo;
    }

    //可以针对异常特定的写个返回信息
    public static WXBaseRespVo sensitive(String word){
        WXBaseRespVo<Object> baseRespVo = new WXBaseRespVo<>();
        baseRespVo.setErrno(506);
        baseRespVo.setErrmsg("一个"+word+"异常，100块");
        return baseRespVo;
    }
}
